package cn.com.common.job.task;



import org.quartz.DisallowConcurrentExecution;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import cn.com.common.constants.Constants;
import cn.com.mqtt.consumer.MqttConsumerConfig;

/**
 * 重新连接MQTT
 *
 * @author wenbin
 * @version V1.0
 * @date 2024年4月18日
 */
@Component("sysReconnectMqttProcessTask")
@DisallowConcurrentExecution
public class SysReconnectMqttProcessTask {
	
	@Value("${gasstation.timedTask.sysReconnectMqttProcessTask}")
	private String sysReconnectMqttProcessTask;

	private Logger logger = LoggerFactory.getLogger(getClass());

	public static SysReconnectMqttProcessTask reconnectMqttProcessTask;
	private static MqttConsumerConfig client;
	@Autowired
	public void setMqttConsumerConfig(MqttConsumerConfig client) {
		SysReconnectMqttProcessTask.client = client;
	}
	
	public void run(String params) {
		
		logger.debug("sysReconnectMqttProcessTask定时任务正在执行，参数为：{}", params);
		if (sysReconnectMqttProcessTask.equals(Constants.JOB_START)) {
			if(!client.isConnected()){
				logger.debug("sysReconnectMqttProcessTask监控结果:连接已断开");

				if(client.connect()){
					logger.debug("sysReconnectMqttProcessTask监控结果:连接已断开,重新连接成功");
				}else{
					logger.debug("sysReconnectMqttProcessTask监控结果:连接已断开,重新连接失败");
				}
			}else{
				logger.debug("sysReconnectMqttProcessTask监控结果:连接未断开");
			}
		}else{
			logger.debug("application配置文件控制不执行sysReconnectMqttProcessTask定时任务");

		}
		
	}
}
